# ----------------------------------------------------------------------
# gzip compression
# ----------------------------------------------------------------------
<IfModule mod_deflate.c>

	# force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
	<IfModule mod_setenvif.c>
		<IfModule mod_headers.c>
			SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s,?\s(gzip|deflate)?|X{4,13}|~{4,13}|-{4,13})$ HAVE_Accept-Encoding
			RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
		</IfModule>
	</IfModule>

	# html, txt, css, js, json, xml, htc:
	<IfModule filter_module>
		FilterDeclare   COMPRESS
		FilterProvider  COMPRESS  DEFLATE resp=Content-Type /text/(html|css|javascript|plain|x(ml|-component))/
		FilterProvider  COMPRESS  DEFLATE resp=Content-Type /application/(javascript|json|xml|x-javascript)/
		FilterChain     COMPRESS
		FilterProtocol  COMPRESS  change=yes;byteranges=no
	</IfModule>

	<IfModule !mod_filter.c>
	# Legacy versions of Apache
		AddOutputFilterByType DEFLATE text/html text/plain text/css application/json
		AddOutputFilterByType DEFLATE text/javascript application/javascript application/x-javascript 
		AddOutputFilterByType DEFLATE text/xml application/xml text/x-component
	</IfModule>

</IfModule>

# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------
<IfModule mod_expires.c>
	ExpiresActive on

# Perhaps better to whitelist expires rules? Perhaps.
	ExpiresDefault                          "access plus 1 month"

# cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
	ExpiresByType text/cache-manifest       "access plus 0 seconds"

# your document html 
	ExpiresByType text/html                 "access plus 0 seconds"

# data
	ExpiresByType text/xml                  "access plus 0 seconds"
	ExpiresByType application/xml           "access plus 0 seconds"
	ExpiresByType application/json          "access plus 0 seconds"

# rss feed
	ExpiresByType application/rss+xml       "access plus 1 hour"

# favicon
	ExpiresByType image/x-icon              "access plus 1 week" 

# media: images
	ExpiresByType image/gif                 "access plus 1 month"
	ExpiresByType image/png                 "access plus 1 month"
	ExpiresByType image/jpg                 "access plus 1 month"
	ExpiresByType image/jpeg                "access plus 1 month"

# css and javascript
	ExpiresByType text/css                  "access plus 2 months"
	ExpiresByType application/javascript    "access plus 2 months"
	ExpiresByType text/javascript           "access plus 2 months"

	<IfModule mod_headers.c>
		Header append Cache-Control "public"
	</IfModule>
  
</IfModule>


# ETag removal
	FileETag none

<IfModule mod_rewrite.c>
RewriteEngine on
	ErrorDocument 400 /index.php?err=400
	ErrorDocument 401 /index.php?err=401
	ErrorDocument 403 /index.php?err=403
	ErrorDocument 404 /index.php?err=404
	ErrorDocument 500 /index.php?err=500
#image view
	RewriteRule ^pm-(.*)\.(jpg|jpeg|png|gif|html)$ thumbnail.php?pm=$1 [L]
	RewriteRule ^pt-(.*)\.(jpg|jpeg|png|gif|html)$ thumbnail.php?pt=$1 [L]
	RewriteRule ^dt-(.*)\.(jpg|jpeg|png|gif)$ image.php?dt=$1 [L]
	RewriteRule ^dm-(.*)\.(jpg|jpeg|png|gif)$ image.php?dm=$1 [L]
	RewriteRule ^di-(.*)\.(jpg|jpeg|png|gif|bmp)$ image.php?di=$1 [L]
	RewriteRule ^dl-(.*)\.(jpg|jpeg|png|gif|bmp)$ image.php?dl=$1 [L]
	
	RewriteRule ^pm/(.*)/(.*)\.(jpg|jpeg|png|gif|html)$ thumbnail.php?pm=$1 [L]
	RewriteRule ^pt/(.*)/(.*)\.(jpg|jpeg|png|gif|html)$ thumbnail.php?pt=$1 [L]
	RewriteRule ^dt/(.*)/(.*)\.(jpg|jpeg|png|gif)$ image.php?dt=$1 [L]
	RewriteRule ^dm/(.*)/(.*)\.(jpg|jpeg|png|gif)$ image.php?dm=$1 [L]
	RewriteRule ^di/(.*)/(.*)\.(jpg|jpeg|png|gif|bmp)$ image.php?di=$1 [L]
	RewriteRule ^dl/(.*)/(.*)\.(jpg|jpeg|png|gif|bmp)$ image.php?dl=$1 [L]
#Not Found
	RewriteRule ^(pm|pt)/(.*)/(.*)$ thumbnail.php?pm=notfound [L]
	RewriteRule ^(dt|dm|di|dl)/(.*)/(.*)$ index.php?di=notfound [L]

#Gallery
	RewriteRule ^gallery/$ gallery.php [L]
	RewriteRule ^gallery/([0-9]+)/$ gallery.php?p=$1 [L]
	RewriteRule ^gallery/(.*)/([0-9]+)/$ gallery.php?p=$2&o=$1 [L]
	RewriteRule ^gallery/([A-Za-z])/page([0-9]+)\.html$ gallery.php?p=$2&o=$1 [L]
#sitemap
	RewriteRule ^sitemap.xml$ sitemap.php [L]
</IfModule>